Methods of processing digital image and/or video data including luminance filtering based on chrominance data and related systems and computer program products

ABSTRACT

Digital image and/or video data is processed wherein a frame of the data comprises a plurality of rows and columns of pixels with data for each pixel including a luminance value and a chrominance value. Chrominance values and luminance values may be received for a current pixel and at least one adjacent pixel, and the chrominance values of the current pixel and the at least one adjacent pixel may be compared. The luminance value of the current pixel may be filtered wherein a strength of filtering the luminance value is based on the comparison of the chrominance values of the current and at least one adjacent pixels.

FIELD OF THE INVENTION

The present invention relates to the field of image and/or video, andmore particular to processing of digital image and/or video data andrelated systems and computer program products.

BACKGROUND OF THE INVENTION

A pixel adaptive noise reduction filter for digital video is discussedin U.S. Pat. No. 5,959,693 to Siu-Wai Wu et al. As discussed in theabstract of Wu et al., a current pixel of a video image is adaptivelyfiltered to provide stronger filtering when there is a high likelihoodthat noise is present. Weaker filtering is provided when the presence ofa color and/or brightness edge is likely in the video image. Each pixelhas luminance and chrominance amplitude values. In a filtering method, acurrent pixel is intermediate to first and second pixels in the videoframe. Difference signals are determined based on the amplitudedifference between the current pixel and first and second adjacentpixels. A plurality of available filters provide successively strongerfiltering of the current pixel amplitude. One of the filters is selectedfor filtering the current pixel according to the difference signals.Secondary difference signals which indicate the amplitude differencebetween the current pixel and pixels which are adjacent to the first andsecond pixels are also considered in the selection process. Theselection process may further be biased by a user-selectable controlword. The scheme may also provide temporal filtering with successivevideo frames or images. Filtering with pixel interpolation may also beused. The disclosure of U.S. Pat. No. 5,959,693 is hereby incorporatedherein in its entirety by reference.

SUMMARY OF THE INVENTION

According to embodiments of the present invention, methods may beprovided for processing digital image and/or video data wherein a frameof the data comprises a plurality of rows and columns of pixels withdata for each pixel including a luminance value and a chrominance value.More particularly, chrominance values and luminance values may bereceived for a current pixel and at least one adjacent pixel, and thechrominance values of the current pixel and the at least one adjacentpixel may be compared. The luminance value of the current pixel may befiltered wherein a strength of filtering the luminance value is based onthe comparison of the chrominance values of the current pixel and atleast one adjacent pixel.

Filtering the luminance value of the current pixel may include averagingthe luminance value of the current pixel with a luminance value of atleast one adjacent pixel, and a strength of the filtering may bedetermined by weightings applied to the luminance values when averagingthe luminance values. Comparing the chrominance values of the currentand adjacent pixels may include calculating a difference between thechrominance values of the current and adjacent pixels. Moreover, thestrength of filtering may be reduced when the difference between thechrominance values of the current and adjacent pixels is above apredetermined threshold, and the strength of filtering may be increasedwhen the difference between the chrominance values of the current andadjacent pixels is below the predetermined threshold.

The data may be provided in a YCrCb format where Y is a luminance valueand Cr and Cb are respective red and blue chrominance values for eachpixel. Moreover, comparing the chrominance values of the current andadjacent pixels may include summing an absolute value of a difference ofthe Cr value for each pixel and an absolute value of a difference of theCb value for each pixel. More particularly, the absolute value of thedifference of the Cr value for each pixel may be a squared difference ofthe Cr values and the absolute value of the difference of the Cb valuefor each pixel may be a squared difference of the Cb values. Inaddition, decreasing the strength of filtering may comprise passing theluminance data for the pixel without filtering. In addition, theluminance values of the current pixel and at least one adjacent pixelmay be compared before filtering the luminance value of the currentpixel, and a strength of the filtering may be based on the comparison ofthe chrominance values of the first and second pixels and on thecomparison of the luminance values.

Receiving the chrominance values and luminance values for a currentpixel and at least one adjacent pixel may include receiving thechrominance and luminance values from a digital camera, and the dataincluding the filtered luminance value can be encoded and transmittedover a wireless interface. Encoding may include varying a rate ofcompression of the data, and a strength of the filtering may be based onthe comparison of the chrominance values of the first and second pixelsand on the rate of compression applied during encoding. Receivingchrominance values and luminance values from the digital camera mayinclude receiving chrominance values and luminance values for a frame ofdata, and filtering the luminance value may include filtering luminancevalues for the frame of data. In addition, portions of the filteredframe to which texture should be applied can be identified, and anidentification of portions of the frame to which texture should beapplied can be transmitted. An identification of one of a plurality oftextures which should be applied can also be transmitted.

The encoded data may be received over a wireless interface, and theencoded data may be decoded before receiving the chrominance values andluminance values for the current pixel and the at least one adjacentpixel to provide the chrominance values and luminance values for thecurrent pixel and for the at least one adjacent pixel. Filtering theluminance value may include filtering luminance values for a frame ofdata, identifying a portion of the frame to which texture should beapplied, and, after filtering the luminance values from the frame ofdata, the texture can be applied to the identified portions of theframe.

Moreover, the first and adjacent pixels may be one of horizontallyadjacent, vertically adjacent, diagonally adjacent, and/or temporallyadjacent. In addition, filtering the luminance value of the currentpixel may include low-pass filtering the luminance value of the currentpixel.

According to additional embodiments of the present invention, methodsmay be provided for processing digital image and/or video data from atransmitting device wherein a frame of the data comprises a plurality ofrows and columns of pixels with data for each pixel including aluminance value and a chrominance value. In addition, the data ispre-filtered and encoded before transmission, and the data may bepre-filtered according to a pre-filtering algorithm. The pre-filteredand encoded data may be received from the transmitting device, and thepre-filtered and encoded data from the transmitting device may bedecoded. The decoded data may be post-filtered according to apost-filtering algorithm wherein the pre-filtering and post-filteringalgorithms are matched.

According to still additional embodiments of the present invention,methods may be provided for processing digital image and/or video datafrom a transmitting device wherein a frame of the data includes aplurality of rows and columns of pixels with data for each pixelincluding a luminance value and a chrominance value. The data may bepre-filtered and encoded before transmission, and the data may bepre-filtered according to a pre-filtering algorithm with parameters ofthe pre-filtering algorithm being transmitted from the transmittingdevice. The the pre-filtered and encoded data and the parameters of thepre-filtering algorithm may be received from the transmitting device.The pre-filtered and encoded data from the transmitting device may bedecoded, and the decoded data may be post-filtered according to apost-filtering algorithm wherein the operation of the post-filteringalgorithm is adapted according to the parameters of the pre-filteringalgorithm received from the transmitting device.

According to yet additional embodiments of the present invention,methods may be provided for processing digital image and/or video datawherein a frame of the data includes a plurality of rows and columns ofpixels. A luminance value for a current pixel may be received, and theluminance value of the current pixel may be filtered. The data includingthe filtered luminance value may be encoded wherein encoding datacomprises varying a rate of compression of the data, and wherein astrength of the filtering of the luminance value is varied responsive tothe rate of compression applied during encoding.

According to more embodiments of the present invention, methods may beprovided for processing digital image and/or video data wherein a frameof the data comprises a plurality of rows and columns of pixels. Datafor pixels of a frame may be received and filtered, and a portion of theframe of data to which texture should be applied can be identified. Thefiltered data for the pixels of the frame can be encoded, and theencoded and filtered data for the pixels of the frame can betransmitted. In addition, identification of the portion of the frame ofdata to which texture should be applied can be transmitted.

According to still more embodiments of the present invention, methodsmay be provided for processing digital image and/or video data wherein aframe of the data comprises a plurality of rows and columns of pixels.Data for pixels of a frame of the data may be received and decoded. Aportion of the frame of data to which texture should be applied can beidentified, and after decoding the data for the pixels of the frame, thetexture can be applied to the identified portion of the frame of data.

According to additional embodiments of the present invention, computerprogram products may be provided for processing digital image and/orvideo data wherein a frame of the data includes a plurality of rows andcolumns of pixels with data for each pixel including a luminance valueand a chrominance value. The computer program products may include acomputer-readable storage medium having computer-readable program codeembodied in the medium. The computer-readable program code may includecomputer-readable program code that receives chrominance values andluminance values for a current pixel and at least one adjacent pixel;that compares the chrominance values of the current pixel and the atleast one adjacent pixel; and that filters the luminance value of thecurrent pixel wherein a strength of filtering the luminance value isbased on the comparison of the chrominance values of the current and atleast one adjacent pixels.

According to still additional embodiments of the present invention,computer program products may be provided for processing digital imageand/or video data from a transmitting device wherein a frame of the dataincludes a plurality of rows and columns of pixels with data for eachpixel including a luminance value and a chrominance value, wherein thedata is pre-filtered and encoded before transmission and wherein thedata is pre-filtered according to a pre-filtering algorithm. Thecomputer program products may include a computer-readable storage mediumhaving computer-readable program code embodied in the medium. Thecomputer-readable program code may include computer-readable programcode that receives the pre-filtered and encoded data from thetransmitting device; that decodes the pre-filtered and encoded data fromthe transmitting device; and that post-filters the decoded dataaccording to a post-filtering algorithm wherein the pre-filtering andpost-filtering algorithms are matched.

According to yet additional embodiments of the present invention,computer program products may be provided for processing digital imageand/or video data from a transmitting device wherein a frame of the datacomprises a plurality of rows and columns of pixels with data for eachpixel including a luminance value and a chrominance value. Moreover, thedata may be pre-filtered and encoded before transmission with the databeing pre-filtered according to a pre-filtering algorithm and withparameters of the pre-filtering algorithm being transmitted from thetransmitting device. The computer program products may include acomputer-readable storage medium having computer-readable program codeembodied in the medium. The computer program products may includecomputer-readable program code that receives the pre-filtered andencoded data from the transmitting device; that receives the parametersof the pre-filtering algorithm transmitted from the transmitting device;that decodes the pre-filtered and encoded data from the transmittingdevice; and that post-filters the decoded data according to apost-filtering algorithm wherein the operation of the post-filteringalgorithm is adapted according to the parameters of the pre-filteringalgorithm received from the transmitting device.

According to more embodiments of the present invention, computer programproducts may be provided for processing digital image and/or video datawherein a frame of the data comprises a plurality of rows and columns ofpixels. The computer program products may include a computer-readablestorage medium having computer-readable program code embodied in themedium. The computer-readable program code may include computer-readableprogram code that receives a luminance value for a current pixel; thatfilters the luminance value of the current pixel; and that encodes thedata including the filtered luminance value wherein encoding datacomprises varying a rate of compression of the data, and wherein astrength of the filtering of the luminance value is varied responsive tothe rate of compression applied during encoding.

According to still more embodiments of the present invention, computerprogram products may be provided for processing digital image and/orvideo data wherein a frame of the data comprises a plurality of rows andcolumns of pixels. The computer program products may include acomputer-readable storage medium having computer-readable program codeembodied in the medium. The computer-readable program code may includecomputer-readable program code that receives data for pixels of a frameof the data; that filters the data for the pixels of the frame; thatidentifies a portion of the frame of data to which texture should beapplied; that encodes the filtered data for the pixels of the frame;that transmits the encoded and filtered data for the pixels of theframe; and that transmits identification of the portion of the frame ofdata to which texture should be applied.

According to yet more embodiments of the present invention, computerprogram products may be provided for processing digital image and/orvideo data wherein a frame of the data comprises a plurality of rows andcolumns of pixels. The computer program product may include acomputer-readable storage medium having computer-readable program codeembodied in the medium. The computer-readable program code may comprisecomputer-readable program code that receives data for pixels of a frameof the data; that decodes the data for pixels of the frame; thatidentifies a portion of the frame of data to which texture should beapplied; and that applies the texture to the identified portion of theframe of data after decoding the data for the pixels of the frame.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of communications systems according to embodimentsof the present invention.

FIG. 2 is a block diagram of a mobile terminal according to embodimentsof the present invention.

FIGS. 3-9 are flow charts illustrating operations of processing imageand/or video data according to embodiments of the present invention.

FIGS. 10-12 are block diagrams illustrating processors according toembodiments of the present invention.

DETAILED DESCRIPTION

The present invention will now be described more fully hereinafter withreference to the accompanying drawings, in which preferred embodimentsof the invention are shown. This invention may, however, be embodied inmany different forms and should not be construed as limited to theembodiments set forth herein; rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope of the invention to those skilled in the art. Likenumbers refer to like elements throughout.

As will be appreciated by those of skill in the art, the presentinvention may be embodied as methods or devices. Accordingly, thepresent invention may take the form of a hardware embodiment, a softwareembodiment or an embodiment combining software and hardware aspects. Itwill also be understood that when an element is referred to as being“connected” or “coupled” to another element, it can be directlyconnected or coupled to the other element or intervening elements may bepresent. In contrast, when an element is referred to as being “directlyconnected” or “directly coupled” to another element, there are nointervening elements present.

It should be emphasized that the term “comprise/comprises/comprising”when used in this specification is taken to specify the presence ofstated features, integers, steps or components but does not preclude thepresence or addition of one or more other features, integers, steps,components or groups thereof.

Now referring to FIG. 1, wireless communications may be providedaccording to embodiments of the present invention by a wirelesscommunications system including a mobile telephone switching office(MTSO) 103 and a plurality of base stations 105 a-c. Each base station,for example, may provide wireless communications with one or a pluralityof mobile terminals (MT) 107 a-d, and the mobile telephone switchingoffice may also provide communications with a public switched telephonenetwork (PSTN) 101 and/or a data communications network 109 such as anintranet and/or the Internet. The wireless communications system canthus provide voice, image and/or video, video, and/or datacommunications between two mobile terminals 107, between a mobileterminal 107 and a conventional telephone coupled to the public switchedtelephone network 101, and/or between a mobile terminal 107 and acomputing device (such as a personal or laptop computer) coupled to thedata communications network 109 and/or coupled to the public switchedtelephone network.

The wireless communications system, for example, may be a wirelesscommunications network such as a WiFi network, a cellular network, aPersonal Communications Services (PCS) network, a satellitecommunications network, an ultrawideband network, and/or a Bluetoothnetwork. Each mobile terminal 107, for example, may be a radiotelephone,a personal wirelessly enabled digital assistant (such as Palm Pilot™ ora Pocket PC™), a pager, a wireless messaging device (such as aBlackberry™ wireless handheld device), a wireless enabled laptopcomputer, and/or combinations thereof. Moreover, direct communicationsmay be enabled between mobile terminals 107 without use of a basestation 105 and/or mobile telephone switching office 103.

Mobile terminals 107 can thus be used to provide wireless voice and/ordata communications and the wireless communications may be digital.Mobile terminals 107 may also include digital cameras therein and/orcoupled thereto. A digital camera may capture a frame made up of aplurality of rows and columns of pixels to provide a digital imageand/or video (picture), and/or the digital camera may capture aplurality of sequential frames to provide video. Such digital imageand/or videos and/or video may be stored in memory of a mobile terminaland viewed on a screen of the mobile terminal. Digital image and/orvideo data may also (or in an alternative) be transmitted from themobile terminal 107 over a wireless interface to another mobile terminal107, and/or to another device coupled to a public switched telephonenetwork 101 and/or the data communications network 109. Digital imageand/or video data may also (or in an alternative) be transmitted fromthe mobile terminal 107 over a wired interface (such as using port 218)to another mobile terminal or device.

When transmitting image and/or video over a wireless interface, abandwidth of the transmission may be reduced by filtering the imageand/or video before transmission. Data representing the image and/orvideo, for example, may be subjected to low-pass filtering to reducehigh frequency components of the image and/or video that may consume arelatively large amount of bandwidth while being relatively difficult toperceive and/or providing relatively little visual information.Moreover, a strength of filtering of the data can be varied on a pixelby pixel basis so that visually important information such as edgesbetween objects can be preserved while high frequency components thatmay be more difficult to perceive or may not be as visually importantare filtered more strongly. According to embodiments of the presentinvention, high frequency information in textures with little variationin chrominance values across pixels including the high frequencyinformation in textures may be removed with little significant impact tothe subjective quality of the image and/or video.

More particularly, each pixel of a frame of digital image and/or videodata may have a luminance value and a plurality of chrominance valuesassociated therewith, and the luminance value of a current pixel may befiltered with a strength of filtering of the luminance value being basedon a comparison of chrominance values of the current and at least oneadjacent pixel. The filtered image and/or video data can then be encodedbefore transmission to another device and/or storage in memory tofurther reduce a bandwidth consumed in transmission and/or to furtherreduce memory consumed in storage. In addition or in an alternative,filtering according to embodiments of the present invention may beperformed at a device receiving digital image and/or video data prior toreproducing and/or storing the image and/or video.

As shown in FIG. 2, a mobile terminal 207 according to embodiments ofthe 30 present invention may include an antenna 211, a transceiver 213,a processor 215, a memory 217, a port 218, a user interface 219, and/ora digital camera 220. More particularly, the user interface 219 mayinclude one or more of a speaker 221, a microphone 223, a keypad 225, adisplay 227 (such as a flat panel screen or liquid crystal display),and/or a touch sensitive screen 229. The mobile terminal 207 may be aradiotelephone, a personal wirelessly enabled digital assistant (such asPalm Pilot™ or a Pocket PC™), a pager, a wireless messaging device (suchas a Blackberry™ wireless handheld device), a wireless enabled laptopcomputer, and/or combinations thereof. Moreover, the mobile terminal mayprovide wireless communications through one or more communicationsnetworks such as a WiFi network, a cellular network, a PersonalCommunications Services (PCS) network, a satellite communicationsnetwork, an ultrawideband network, and/or a Bluetooth network, asdiscussed above with regard to FIG. 1.

In addition, the mobile terminal 207 may provide communications directlywith another device without use of an intermediary communications systemor network. For example, the mobile terminal 207 may provide directwireless communications with another mobile terminal using a radiofrequency, an infrared, and/or an optical coupling. In an alternative,the mobile terminal 207 may provide direct communications with anothermobile terminal using a wired and/or fiber optic coupling through port218. The mobile terminal may also be a digital still camera and/ordigital video camera without providing other communications and/orcomputing functionalities.

According to embodiments of the present invention, the digital camera220 may capture a single frame as a still image and/or video to providea picture and/or a plurality of consecutive frames to provide video.More particularly, an image and/or video may be defined as a frameincluding a plurality of rows and columns of pixels, and data for eachpixel may include a luminance value and a plurality of chrominancevalues. According to YCbCr formats, for example, each pixel is definedby a luminance value Y, a chrominance blue value Cb, and a chrominancered value Cr. Moreover, according to some formats, the chrominancevalues may be subsampled to reduce data processing, memory, and/ortransmission bandwidth requirements. According to the YCbCr 4:2:2format, for example, a sampled Y (luminance value) is maintained foreach pixel, but only one Cb (chrominance blue value) and only one Cr(chrominance red value) is maintained for each pair of pixels. Accordingto the YCbCr 4:2:0 format, a sampled Y (luminance value) is maintainedfor each pixel, but only one Cb and only one Cr is maintained for eachblock of four pixels.

The pixel data captured by the digital camera 220 may be provided toeither or both of the processor 215 and/or the memory 217, or the pixeldata may initially be stored in a memory included with in the digitalcamera 220. For example, the original pixel data from the digital cameramay be stored in memory 217 before processing at processor 215. In analternative, the pixel data may be processed at processor 215 beforestoring processed pixel data in memory 217. In another alternative, thepixel data may be processed in processor 215 and transmitted throughtransceiver 213 and antenna 211 without storing either original orprocessed pixel data in memory 217.

The processor 215 of FIG. 2 may thus filter image and/or video datareceived from digital camera 220, memory 217, transceiver 213, and/orport 218. For example, the processor may receive the data from thedigital camera 220 and/or memory 217 before encoding the data fortransmission from transceiver 213 and antenna 211 over a wirelessinterface. In an alternative, the processor 215 may receive the datafrom transceiver 213 after reception over a wireless interface, and theprocessor may decode the data before filtering.

More particularly, the processor 215 may process the digital imageand/or video data so that a luminance value of a pixel of a frame can befiltered based on a comparison of chrominance values of the currentpixel and a pixel adjacent to the pixel currently being processed. Moreparticularly, the chrominance values and luminance values for a currentand at least one adjacent pixel can be received from memory 217, digitalcamera 220, transceiver 213, and/or port 218. The chrominance values forthe current and at least one adjacent pixel can be compared, and theluminance value for the current pixel can be filtered with a strength offiltering of the luminance value being based on the comparison of thechrominance values of the current pixel and at least one adjacent pixel.Accordingly, a strength of filtering for luminance values in a frame canvary pixel by pixel based on comparisons of chrominance values for eachpixel and an adjacent pixel.

As used herein, the term current pixel refers to the pixel currentlybeing processed, and the term adjacent pixel refers to a pixel adjacentto the pixel currently being processed. An adjacent pixel may behorizontally, vertically, or diagonally adjacent to the current pixel,and the adjacent pixel may be directly or immediately adjacent to thecurrent pixel with no intervening pixels therebetween. In analternative, intervening pixels may be present between the current andadjacent pixel.

Moreover, the adjacent pixel may be temporally adjacent to the currentpixel in a series of video frames such that the adjacent pixel occupiesa corresponding pixel location in a frame previous or subsequent to theframe of the current pixel.

In addition, the adjacent pixel may be selected such that the currentand adjacent pixels do not share a same chrominance value or values. Ifchrominance values are subsampled so that blocks of four pixels sharethe same Cb and Cr values according to the YCbCr 4:2:0 format, forexample, the adjacent pixel can be selected from an adjacent block ofpixels different than the block of pixels including the current pixel.Similarly, if chrominance values are subsampled so that pairs of twopixels share the same Cb and Cr values according the YCbCr 4:2:2 format,the adjacent pixel can be selected from an adjacent pair of pixelsdifferent than the pair of pixels including the current pixel.

More particularly, the processor 215 may filter the luminance value ofthe current pixel by averaging the luminance value of the current pixelwith a luminance value of one or more adjacent pixels, and the strengthof filtering may be determined by weightings applied to the luminancevalues when averaging. According to a particular embodiment, theluminance value of the current pixel may be averaged with luminancevalues of the two horizontally, vertically, and/or diagonally adjacentpixels on either side thereof. With relatively strong filtering,approximately equal weightings (i.e. approximately 33.33%) can beapplied to each of the three luminance values being averaged to providethe filtered luminance value for the current pixel. With relatively weakfiltering, relatively low weightings (i.e. approximately 10%) can beapplied to the luminance values of the two adjacent pixels and arelatively high weighting (i.e. approximately 80%) can be applied to theluminance value of the current pixel when averaging the luminance valuesof the three pixels to provide the filtered luminance value for thecurrent pixel. By applying weightings of 0% to the luminance value ofthe two adjacent pixels and applying a weighting of 100% to theluminance value of the current pixel, the original luminance value ofthe current pixel can be passed through without filtering. If nofiltering is desired for a luminance value of a particular pixel, theoriginal luminance value of the pixel can be passed through filteringwithout change or averaging to provide zero filtering. Filtering isdiscussed above by way of example only, and more advancedimplementations could consider more surrounding pixels, for example.

The processor 215 may compare chrominance values for current andadjacent pixels by calculating a difference between the chrominancevalues of the current and adjacent pixels. The strength of filteringapplied by the processor may be reduced when the difference between thechrominance values of the pixels being compared is above a predeterminedthreshold, and the strength of filtering applied by the processor 215may be increased when the difference between the chrominance values ofthe current and adjacent pixels is below the predetermined threshold.For example, predetermined weightings greater than zero may be appliedto luminance values of adjacent pixels when averaging if the differencebetween chrominance values is less than the predetermined threshold, andweightings of zero can be applied to luminance values of adjacent pixelswhen averaging if the difference between chrominance values is greaterthan the predetermined threshold. In addition, the non-zero weightingsapplied when the difference between the chrominance values is less thanthe predetermined threshold can be varied based on other factors such asa comparison of luminance values, a degree of compression applied duringencoding, and/or to match filtering characteristics of a transmitting orreceiving device. In an alternative, the strength of filtering may bevaried between pixels on a scale of degree with the strength offiltering of the luminance value of the current pixel being inverselyproportional to the difference in chrominance values of the current andadjacent pixels.

According to particular embodiments of the present invention, thedigital data for each pixel of a frame may be provided in a YCbCr formatwhere Y is a luminance value and Cr and Cb are respective red and bluechrominance values. The chrominance values for the current and adjacentpixel can be compared by the processor 215 by summing an absolute valueof a difference of the Cr value for each pixel and an absolute value ofa difference of the Cb value for each pixel. Moreover, the absolutevalue of the difference of the Cr value for each pixel may be a squareddifference of the Cr values, and the absolute value of the difference ofthe Cb value for each pixel may be a squared difference of the Cbvalues. Accordingly, the chrominance values may be compared by theprocessor by calculating a difference D according to the followingformula:D=(Cb _(i) −Cb _(j))²+(Cr _(i) −Cr _(j))².tm Equation 1In this formula, Cr_(i) and Cr_(j) are the red chrominance values forthe respective current (i) and adjacent (j) pixels, and Cb_(i) andCb_(j) are the blue chrominance values for the respective current (i)and adjacent (j) pixels.

As discussed above, the strength of filtering applied by the processor215 to the luminance value of the current pixel may vary inversely withrespect to the value D calculated when comparing chrominance valuesaccording to the formula of Equation 1. If the value D (difference ofchrominance values for the current and adjacent pixels) exceeds apredetermined threshold K, the luminance value for the current pixel maybe passed through without change so that effectively no filtering isapplied. As discussed above, no filtering can be obtained, for example,by merely passing the original luminance value for the current pixelthrough, or by averaging the current pixel with other pixels butapplying zero (0%) weightings to the adjacent pixels. Empirical testshave shown that values of K=25 may provide a suitable threshold todetermine when to omit low-pass filtering for the luminance value of thecurrent pixel according to embodiments of the present invention.

Before filtering the luminance value of the current pixel, luminancevalues of the current pixel and at least one adjacent pixel may also becompared, and a strength of filtering applied by processor 125 may bebased on the comparison of chrominance values and on a comparison of theluminance values. According to some embodiments of the presentinvention, if the difference between chrominance values (for example,the value D of equation 1) exceeds a predetermined threshold (forexample, K) for a current pixel, the current pixel may be passed withoutfiltering. If the difference between chrominance values is less than thepredetermined threshold, a determination can be made if the currentpixel has a significant color component. For example, if either of thechrominance values Cb_(i) or Cr_(i) exceeds a predetermined threshold,such as M, the current pixel may be assumed to have a significant colorcomponent, and low-pass filtering may proceed.

If neither of the chrominance values Cb_(i) or Cr_(i) exceeds thepredetermined threshold, such as M, the pixel may be a gray scale (blackor white) pixel and the processor 215 may further determine if there isa significant change in luminance values between the current pixel andan adjacent pixel before filtering. If there is no significant change inluminance values, the luminance value of the current pixel may below-pass filtered. If there is a significant change in luminance values,the luminance value for the current pixel may be passed throughfiltering without change.

Accordingly, edges between black and white areas of an image and/orvideo may be more accurately preserved by disabling filtering when bothof the chrominance values of the current pixel are sufficiently low butthere is a large change in adjacent luminance values.

As illustrated in FIG. 10, a processor 215 a may be configured toinclude an encoder 1011 and a filter 1015 according to embodiments ofthe present invention. Receiving chrominance and luminance values at theprocessor 215 a may include receiving chrominance and luminance valuesfrom a digital camera either directly or via memory used to store thevalues. Moreover, digital image and/or video data can be filtered byfilter 1015 and encoded by encoder 1011 and transmitted by a transceiverover a wireless interface. By filtering the luminance values usingfilter 1015 as discussed above, high frequency information that is noteasily perceived can be filtered so that the encoded image and/or videodata may consume less bandwidth when transmitted over the wirelessinterface.

In addition, the encoder 1011 used to encode the digital image and/orvideo data may vary a rate of compression applied to the digital imageand/or video data, and a strength of the filtering at filter 1015 can bebased on the comparison of the chrominance values and on the rate ofcompression applied by encoder 1011. A rate of compression, for example,may be varied to maintain a relatively constant bit rate for imageand/or videos being transmitted over a wireless interface. For example,an amount of loss during encoding can be determined using a quantizationparameter (QP) with a low QP value providing relatively low compressionand relatively high quality and with a high QP value providingrelatively high compression and relatively low quality. With arelatively high QP value and high compression, a number of compressionartifacts in the resulting image and/or video may increase.

When transmitting encoded video image and/or video data, for example, arate control mechanism of the encoder 1011 may change the QP value toprovide a relatively constant bit rate. When filtering the luminancevalues as discussed above prior to encoding, the strength of filter 1015may be varied responsive to the QP value. In particular, the strength offilter 1015 may be increased when the QP value is relatively high, andthe strength of the filter may be reduced when the QP value isrelatively low. A strength of filter 1015 can thus be modifiedresponsive to a level of compression being applied by encoder 1011, anddistortions may thus be reduced. Other encoding information such asmotion vectors and/or macro-block skip information could also be used tomodify operation of filter 1015.

According to some embodiments of the present invention, a comparison ofchrominance values may be used to determine a threshold for filtering atfilter 1015. For example, if a difference of chrominance values asdetermined using Equation 1 exceeds a threshold K, the luminance valuefor the current pixel may be passed without change by filter 1015 (i.e.weak or no filtering). If the difference in chrominance values is lessthan the threshold K, the luminance value for the current pixel may befiltered by averaging with adjacent pixels. The weightings applied whenaveraging the luminance values may be varied as a function of the QPvalue as discussed above.

Moreover, the QP value from the encoder 1011 may be used to vary afiltering strength of filter 1015, and the QP value may be provided tothe filter 1015 after completion of encoding a previous block of imageand/or video data. Pixels may be encoded in groups of pixels such asblocks, macro-blocks, and/or macro-block lines, for example, and the QPvalue determined when encoding a previous group of pixels may be used toset a filtering strength of filter 1015 for a current group of pixelsincluding the current pixel. In an alternative, multi-pass filtering andencoding may be employed so that a QP valued used to encode the currentpixel may be used to determine a filtering strength for the currentpixel before final encoding and/or transmission.

As illustrated in FIG. 1, a processor 215 b according to embodiments ofthe present invention may include a filter 1101, an encoder 1105, and atexture determination block 1107. As discussed above, filteringoperations can be performed by the filter 1101 for the pixels of animage and/or video frame, and the filtered pixel data for the frame orportions thereof can be encoded by encoder 1105 and transmitted from atransceiver over a wireless interface to another device. Moreparticularly, receiving chrominance and luminance values at theprocessor 215 b may include receiving chrominance and luminance valuesfor a frame of image and/or video data. Moreover, comparisons ofchrominance values and filtering of luminance values at filter 1101 maybe performed for each pixel. In addition, portions of the filtered frameto which texture should be applied can be determined by the texturedetermination block 1107, and an identification of portions of the frameto which texture should be applied can be transmitted by thetransceiver. Moreover, an identification of one of a plurality oftextures which should be applied can be transmitted to the receivingdevice.

When filtering as discussed above, a textured surface (i.e. a surfacewith relatively uniform chrominance across pixels included in thesurface but variation in luminance across pixels included in thesurface) in an image and/or video may be converted to a visually smoothsurface as a result of filtering. Details of the surface texture may notbe important for perception of an object including the surface, butfiltering may provide an unnatural look. A more natural look may thus beprovided by replacing the original texture that has been filtered outwith an artificial texture (such as “comfort noise”) wherein a bandwidthused to transmit a characterization of the artificial texture can beless than a bandwidth used to transmit the actual texture information.

Portions of the filtered frame to which texture should be applied can bedetermined by the texture determination block 1107 by comparing thefiltered pixel data for the frame from the filter 110 with theunfiltered pixel data for the frame directly from the digital cameraand/or frame. For each region of the frame where a texture has beenremoved, the removed texture can be classified and parameterized by thetexture determination block 1107, and the texture parameters and/orclassifications can then be transmitted along with the bitstream used totransmit the filtered and encoded pixel data for the frame. A devicereceiving the image and/or video frame can thus receive the textureparameters and/or classifications for the frame and can use the textureparameters and/or classifications to artificially add high frequencyinformation (i.e. artificial texture and/or “comfort noise”) to asurface from which actual texture has been filtered.

Because chrominance values may be relatively invariant on surfaces thathave been low-pass filtered according to embodiments of the presentinvention discussed above, areas of a frame having relatively invariantchrominance values may be selected for application of artificial textureand/or “comfort noise.” Stated in other words, the receiving device mayuse chrominance values to determine what areas of a frame have hadtexture information filtered therefrom, and what texture and/or “comfortnoise” to apply in these areas. When receiving a plurality of frames ofvideo, the receiving device may also be adapted to provide thatartificial texture and/or “comfort noise” is applied stably to surfacesthat may move from frame to frame of a video sequence. As a surfaceincluding artificial texture and/or “comfort noise” moves from frame toframe, the artificial texture and/or “comfort noise” should move alongwith the surface.

As illustrated in FIG. 12, a processor 215 c according to additionalembodiments of the present invention may include a decoder 1201, apost-filter 1203, and a texture reconstruction block 1205. The processor215 c may thus facilitate receiving image and/or video data from atransmitting device which transmits texture information as discussedabove, for example, with respect to FIG. 11. The post-filter 1203, forexample, may operate as discussed above with respect to pre-filters 1015and 1101 of FIGS. 10 and 11. More particularly, the post-filter 1203 mayprovide post-filtering after decoding at decoder 1201 in a devicereceiving encoded image and/or video data over a wireless interface.More particularly, encoded digital image and/or video data may bereceived over a wireless interface. Moreover, the encoded digital imageand/or video data can be decoded by decoder 1201 to provide chrominancevalues and luminance values for the current pixel and for the at leastone adjacent pixel received.

If classifications and/or parameters for artificial texture informationsuch as “comfort noise” have been transmitted with the image and/orvideo data, portions of the frame to which artificial texture should beapplied can be determined by texture reconstruction block 1205, and theartificial texture can be applied after the post-filter 1203 hasfiltered luminance values from the frame of image and/or video data.

Accordingly, image and/or video data can be pre-filtered by a pre-filterbefore encoding and transmission from a transmitting device, and/or theimage and/or video data can also be post-filtered after reception anddecoding at a receiving device. By performing both pre-filtering andpost-filtering, a number of high frequency artifacts and distortions dueto encoding and/or decoding may be reduced. According to someembodiments of the present invention using both pre-filtering andpost-filtering, information about the pre-filter type and/or parametersmay be transmitted from the transmitting device to the receiving device.The receiving device can then adapt operation of the post-filter tomatch that of the corresponding pre-filter. The pre-filter type and/orparameters may be transmitted as either user data in the image and/orvideo bitstream or stored in an encapsulated file format. In addition orin an alternative, image and/or video codec standards may includepre-filter types and/or parameters as a part of the bitstream.Transmission of filter types and/or parameters may not be required ifpre-filters and post-filters are provided according to a commonstandard.

Moreover, exact matching of pre-filter and post-filter types and/orparameters may not be required according to embodiments of the presentinvention. By using information about the pre-filter parameters andselecting a slightly different filter for the post-filter, sufficientand/or better results may be provided.

The processors of FIGS. 10-12 are provided to illustrate embodiments ofthe present invention without limiting operations of processors to theparticular functionalities illustrated and discussed. By way of example,the processors of FIGS. 10-12 do not illustrate known operations ofsupporting wireless communications such as cellular radiotelephonecommunications. Moreover, functionalities of processors of FIGS. 10-12may be mixed according to embodiments of the present invention, and/ornot all functionalities illustrated in FIGS. 10-12 are required foroperations according to embodiments of the present invention. Forexample, the processor 215 of mobile terminal 207 may includefunctionalities of both processors 215 b and 215 c to supporttransmission of image and/or video data with texture information toanother device and to support receipt of image and/or video data withtexture information from another device. In an alternative, theprocessor 215 of mobile terminal 207 may include functionality ofprocessor 215 a with or without QP value feedback. In anotheralternative, the processor 215 of mobile terminal 207 may includefunctionality of the processor 215 b without texture determination block125 b, and/or the processor 215 may include functionality of processor215 c without texture reconstruction block 1205. In still anotheralternative, the processor 215 may be implemented with the functionalityof processor 215 b with the addition of QP value feedback as shown inFIG. 10.

According to embodiments of the present invention illustrated in FIG. 3,digital image and/or video data can be processed so that a luminancevalue of a pixel of an image and/or video frame can be filtered based ona comparison of chrominance values of the current pixel and a pixeladjacent to the pixel currently being processed. More particularly, thechrominance values and luminance values for a current and at least oneadjacent pixel can be received at block 301. The chrominance values forthe current and at least one adjacent pixel can be compared at block303, and at block 305, the luminance value for the current pixel can befiltered with a strength of filtering of the luminance value being basedon the comparison of the chrominance values of the current and at leastone adjacent pixel. Accordingly, a strength of filtering for luminancevalues in a frame can vary pixel by pixel based on comparisons ofchrominance values for each pixel and an adjacent pixel.

As used herein, the term current pixel refers to the pixel currentlybeing processed, and the term adjacent pixel refers to a pixel adjacentto the pixel currently being processed. An adjacent pixel may behorizontally, vertically, or diagonally adjacent to the current pixel,and the adjacent pixel may be directly adjacent to the current pixelwith no intervening pixels therebetween. In an alternative, interveningpixels may be present between the current and adjacent pixel. Moreover,the adjacent pixel may be temporally adjacent to the current pixel in aseries of video frames such that the adjacent pixel occupies acorresponding pixel location in a frame previous or subsequent to theframe of the current pixel.

In addition, the adjacent pixel may be selected such that the currentand adjacent pixels do not share a same chrominance value or values. Ifchrominance values are subsampled so that blocks of four pixels sharethe same Cb and Cr values according to the YCbCr 4:2:0 format, forexample, the adjacent pixel can be selected from an adjacent block ofpixels different than the block of pixels including the current pixel.Similarly, if chrominance values are subsampled so that pairs of twopixels share the same Cb and Cr values according the YCbCr 4:2:2 format,the adjacent pixel can be selected from an adjacent pair of pixelsdifferent than the pair of pixels including the current pixel.

More particularly, filtering the luminance value of the current pixel atblock 305 may include averaging the luminance value of the current pixelwith a luminance value of one or more adjacent pixels, and the strengthof filtering may be determined by weightings applied to the luminancevalues when averaging. According to a particular embodiment, theluminance value of the current pixel may be averaged with luminancevalues of the two horizontally, vertically, and/or diagonally adjacentpixels on either side thereof. With relatively strong filtering,approximately equal weightings (i.e. approximately 33.33%) can beapplied to each of the three luminance values being averaged to providethe filtered luminance value for the current pixel. With relatively weakfiltering, relatively low weightings (i.e. approximately 10%) can beapplied to the luminance values of the two adjacent pixels and arelatively high weighting (i.e. approximately 80%) can be applied to theluminance value of the current pixel when averaging the luminance valuesof the three pixels to provide the filtered luminance value for thecurrent pixel. By applying weightings of 0% to the luminance value ofthe two adjacent pixels and applying a weighting of 100% to theluminance value of the current pixel, the original luminance value ofthe current pixel can be passed through without filtering. If nofiltering is desired for a luminance value of a particular pixel, theoriginal luminance value of the pixel can be passed through filteringwithout change or averaging to provide zero filtering.

Comparing chrominance values for current and adjacent pixels at block303 may include calculating a difference between the chrominance valuesof the current and adjacent pixels. The strength of filtering applied atblock 305 may be reduced when the difference between the chrominancevalues of the pixels being compared is above a predetermined threshold,and the strength of filtering applied at block 305 may be increased whenthe difference between the chrominance values of the current andadjacent pixels is below the predetermined threshold. For example,predetermined weightings greater than zero may be applied to luminancevalues of adjacent pixels when averaging if the difference betweenchrominance values is less than the predetermined threshold, andweightings of zero can be applied to luminance values of adjacent pixelswhen averaging if the difference between chrominance values is greaterthan the predetermined threshold. In addition, the non-zero weightingsapplied when the difference between the chrominance values is less thanthe predetermined threshold can be varied based on other factors such asa comparison of luminance values, a degree of compression applied duringencoding, and/or to match filtering characteristics of a transmitting orreceiving device. In an alternative, the strength of filtering may bevaried between pixels on a scale of degree with the strength offiltering of the luminance value of the current pixel being inverselyproportional to the difference in chrominance values of the current andadjacent pixels.

According to particular embodiments of the present invention, thedigital data for each pixel of a frame may be provided in a YCbCr formatwhere Y is a luminance value and Cr and Cb are respective red and bluechrominance values. The chrominance values for the current and adjacentpixel can be compared at block 303 by summing an absolute value of adifference of the Cr value for each pixel and an absolute value of adifference of the Cb value for each pixel. Moreover, the absolute valueof the difference of the Cr value for each pixel may be a squareddifference of the Cr values, and the absolute value of the difference ofthe Cb value for each pixel may be a squared difference of the Cbvalues. Accordingly, the chrominance values may be compared at block 303by calculating a difference D according to the following formula:D=(Cb _(i) −Cb _(j))²+(Cr _(i) −Cr _(j))².  Equation 1In this formula, Cr_(i) and Cr_(j) are the red chrominance values forthe respective current (i) and adjacent (j) pixels, and Cb_(i) andCb_(j) are the blue chrominance values for the respective current (i)and adjacent (j) pixels.

As discussed above, the strength of filtering applied to the luminancevalue of the current pixel at block 305 may vary inversely with respectto the value D calculated when comparing chrominance values at block 303according to the formula of Equation 1. If the value D (difference ofchrominance values for the current and adjacent pixels) exceeds apredetermined threshold K, the luminance value for the current pixel maybe passed through block 305 without change so that effectively nofiltering is applied. As discussed above, no filtering can be obtained,for example, by merely passing the original luminance value for thecurrent pixel through, or by averaging the current pixel with otherpixels but applying zero (0%) weightings to the adjacent pixels.Empirical tests have shown that values of K=25 may provide a suitablethreshold to determine when to omit low-pass filtering for the luminancevalue of the current pixel according to embodiments of the presentinvention.

Before filtering the luminance value of the current pixel at block 305,luminance values of the current pixel and at least one adjacent pixelmay also be compared, and a strength of filtering at block 305 may bebased on the comparison of chrominance values and on a comparison of theluminance values. According to some embodiments of the presentinvention, if the difference between chrominance values (for example,the value D of equation 1) exceeds a predetermined threshold (forexample, K) for a current pixel, the current pixel may be passed withoutfiltering at block 305. If the difference between chrominance values isless than the predetermined threshold, a determination can be made ifthe current pixel has a significant color component. For example, ifeither of the chrominance values Cb_(i) or Cr_(i) exceeds apredetermined threshold, such as M, the current pixel may be assumed tohave a significant color component, and low-pass filtering may proceedat block 305.

If the neither of the chrominance values Cb_(i) or Cr_(i) exceeds thepredetermined threshold, such as M, the pixel may be a gray scale (blackor white) pixel and a further determination may be made if there is asignificant change in luminance values between the current pixel and anadjacent pixel before filtering at block 305. If there is no significantchange in luminance values, the luminance value of the current pixel maybe low-pass filtered at block 305. If there is a significant change inluminance values, the luminance value for the current pixel may bepassed through filtering at block 305 without change. Accordingly, edgesbetween black and white areas of an image and/or video may be moreaccurately preserved by disabling filtering when both of the chrominancevalues of the current pixel are sufficiently low but there is a largechange in adjacent luminance values.

Receiving chrominance and luminance values at block 301 may includereceiving chrominance and luminance values from a digital camera eitherdirectly or via memory used to store the values. Moreover, digital imageand/or video data including the filtered luminance value for the currentpixel can be encoded and transmitted over a wireless interface. Byfiltering the luminance values as discussed above, high frequencyinformation that is not easily perceived can be filtered so that theencoded image and/or video data may consume less bandwidth whentransmitted over the wireless interface.

In addition, encoding the digital image and/or video data may includevarying a rate of compression applied to the digital image and/or videodata, and a strength of the filtering at block 305 can be based on thecomparison of the chrominance values at block 303 and on the rate ofcompression applied during encoding. A rate of compression, for example,may be varied to maintain a relatively constant bit rate for imageand/or videos being transmitted over a wireless interface. For example,an amount of loss during encoding can be determined using a quantizationparameter (QP) with a low QP value providing relatively low compressionand relatively high quality and with a high QP value providingrelatively high compression and relatively low quality. With arelatively high QP value and high compression, a number of compressionartifacts in the resulting image and/or video may increase.

When transmitting encoded video image and/or video data, for example, arate control mechanism may change the QP value to provide a relativelyconstant bit rate. When filtering the luminance values as discussedabove with regard to FIG. 3 prior to encoding, the strength of filteringat block 305 may be varied responsive to the QP value. In particular,the strength of filtering may be increased when the QP value isrelatively high, and the strength of filtering may be reduced when theQP value is relatively low. Filtering strength can thus be modifiedresponsive to a level of compression being applied during encoding, anddistortions may thus be reduced. Other encoding information such asmotion vectors and/or macro-block skip information could also be used tomodify filtering.

According to some embodiments of the present invention, a comparison ofchrominance values at block 303 may be used to determine a threshold forfiltering. For example, if a difference of chrominance values asdetermined using Equation 1 exceeds a threshold K, the luminance valuefor the current pixel may be passed without change at block 305 (i.e.weak or no filtering). If the difference in chrominance values is lessthan the threshold K, the luminance value for the current pixel may befiltered at block 305 by averaging with adjacent pixels. The weightingsapplied when averaging the luminance values may be varied as a functionof the QP value as discussed above.

Moreover, the QP value used to vary filtering strength may be providedafter completion of a previous block of image and/or video data. Pixelsmay be encoded in groups of pixels such as blocks, macro-blocks, and/ormacro-block lines, for example, and the QP value determined whenencoding a previous group of pixels may be used to set a filteringstrength for a current group of pixels including the current pixel. Inan alternative, multi-pass filtering and encoding may be employed sothat a QP value used to encode the current pixel may be used todetermine a filtering strength for the current pixel before finalencoding and/or transmission.

As discussed above, operations of FIG. 3 can be performed for the pixelsof an image and/or video frame, and the filtered pixel data for theframe or portions thereof can be encoded and transmitted to anotherdevice. More particularly, receiving chrominance and luminance values atblock 301 may include receiving chrominance and luminance values for aframe of image and/or video data. Moreover, comparisons of chrominancevalues at block 303 and filtering of luminance values at block 305 maybe performed for each pixel. In addition, portions of the filtered frameto which texture should be applied can be determined, and anidentification of portions of the frame to which texture should beapplied can be transmitted. Moreover, an identification of one of aplurality of textures which should be applied can be transmitted to areceiving device.

When filtering pixels as discussed above with regard to FIG. 3, atextured surface (i.e. a surface with relatively uniform chrominanceacross pixels included in the surface but variation in luminance acrosspixels included in the surface) in an image and/or video may beconverted to a visually smooth surface as a result of filtering. Detailsof the surface texture may not be important for perception of an objectincluding the surface, but filtering may provide an unnatural look. Amore natural look may thus be provided by replacing the original texturethat has been filtered out with an artificial texture (such as “comfortnoise”) wherein a bandwidth used to transmit a characterization of theartificial texture can be less than a bandwidth used to transmit theactual texture information.

Portions of the filtered frame to which texture should be applied can bedetermined by comparing the filtered pixel data for the frame with theunfiltered pixel data for the frame. For each region of the frame wherea texture has been removed, the removed texture can be classified andparameterized, and the texture parameters and/or classifications canthen be transmitted along with the bitstream used to transmit thefiltered and encoded pixel data for the frame. The device receiving theimage and/or video frame can thus receive the texture parameters and/orclassifications for the frame and can use the texture parameters and/orclassifications to artificially add high frequency information (i.e.artificial texture and/or “comfort noise”) to a surface from whichactual texture has been filtered.

Because chrominance values may be relatively invariant on surfaces thathave been low-passed filtered according to embodiments of the presentinvention discussed above with regard to FIG. 3, areas of a frame havingrelatively invariant chrominance values may be selected for applicationof artificial texture and/or “comfort noise.” Stated in other words, thereceiving device may use chrominance values to determine what areas of aframe have had texture information filtered therefrom, and what textureand/or “comfort noise” to apply in these areas. When receiving aplurality of frames of video, the receiving device may also be adaptedto provide that artificial texture and/or “comfort noise” is appliedstably to surfaces that may move from frame to frame of a videosequence. As a surface including artificial texture and/or “comfortnoise” moves from frame to frame, the artificial texture and/or “comfortnoise” should move along with the surface.

According to additional embodiments of the present invention, processingas discussed above with respect to FIG. 3 may be performed to providepost-filtering after decoding in a device receiving encoded image and/orvideo data over a wireless interface. More particularly, encoded digitalimage and/or video data may be received over a wireless interface.Moreover, the encoded digital image and/or video data can be decoded toprovide chrominance values and luminance values for the current pixeland for the at least one adjacent pixel received at block 301. Ifclassifications and/or parameters for artificial texture informationsuch as “comfort noise” have been transmitted with the image and/orvideo data, portions of the frame to which artificial texture should beapplied can be determined, and the artificial texture can be appliedafter filtering luminance values from the frame of image and/or videodata.

Accordingly, image and/or video data can be pre-filtered according tooperations of FIG. 3 before encoding and transmission from atransmitting device, and/or the image and/or video data can also bepost-filtered after reception and decoding at a receiving device. Byperforming both pre-filtering and post-filtering, a number of highfrequency artifacts and distortions due to encoding and/or decoding maybe reduced. According to some embodiments of the present invention usingboth pre-filtering and post-filtering, information about the pre-filtertype and/or parameters may be transmitted from the transmitting deviceto the receiving device. The receiving device can then adapt operationof the post-filter to match that of the corresponding pre-filter. Thepre-filter type and/or parameters may be transmitted as either user datain the image and/or video bitstream or stored in an encapsulated fileformat. In addition or in an alternative, image and/or video codecstandards may include pre-filter types and/or parameters as a part ofthe bitstream. Transmission of filter types and/or or parameters may notbe required if pre-filters and post-filters are provided according to acommon standard.

Moreover, exact matching of pre-filter and post-filter types and/orparameters may not be required according to embodiments of the presentinvention. By using information about the pre-filter parameters andselecting a slightly different filter for the post-filter, sufficientand/or better results may be provided.

Additional embodiments of filtering according to the present inventionare illustrated in FIG. 4. For each pixel of a frame of image and/orvideo data, a luminance value Y_(i) of the current pixel can be receivedat block 401, chrominance values Cb_(i) and Cr_(i) of the current pixelcan be received at block 403, and chrominance values Cb_(j) and Cr_(j)of an adjacent pixel can be received at block 405. A difference Dbetween chrominance values of the current and adjacent pixels can becalculated at block 407 according to the formula provided above atEquation 1.

If the difference D between chrominance values of the current andadjacent pixels is greater than the threshold K at block 409, theluminance value of the current pixel may be passed at block 415 forsubsequent processing (such as encoding) without change. A sufficientlylarge difference between chrominance values of the current and adjacentpixels may be an indication that the current pixel may form part of anedge between objects, surfaces, etc., and edge features may be moreaccurately preserved by passing the luminance value of the current pixelwithout low-pass filtering.

If the difference D between chrominance values of the current andadjacent pixels is less than the threshold K at block 409, and either ofthe chrominance values Cb_(i) or Cr_(i) of the current pixels is greaterthan the threshold M at block 411, the luminance value of the currentpixel can be subjected to low-pass filtering at block 417 beforesubsequent processing. If the difference D between chrominance values ofthe current and adjacent pixels is less than the threshold K at block409 and neither of the chrominance values of the current pixel isgreater than the threshold M at block 411, a change in luminance valuescan be detected at block 413.

If neither of the chrominance values of the current pixel exceeds thethreshold M at block 411, the current pixel may be either black orwhite, and a significant change in luminance values between the currentand an adjacent pixel may indicate an edge between back and whiteregions of the frame. Accordingly, if neither chrominance value of thecurrent pixel exceeds the threshold M at block 411 and there is asignificant change in luminance values between the current and anadjacent pixel at block 413, the luminance value of the current pixelmay be passed without filtering at block 415 to preserve edges betweenblack and white portions of a frame. If neither chrominance value of thecurrent pixel exceeds the threshold M at block 411 and there is nosignificant change between the luminance value of a current pixel and anadjacent pixel at block 413, the luminance value of the current pixelmay be subjected to low-pass filtering at block 417.

The adjacent pixel for which chrominance values Cb_(j) and Cr_(j) areselected for calculation of the difference D at block 407, the adjacentpixel for comparison of luminance values at block 413, and or theadjacent pixel(s) used for averaging at block 417 may be the same ordifferent pixels adjacent to the current pixel. As discussed above, theterm current pixel refers to the pixel currently being processed, andthe term adjacent pixel refers to a pixel adjacent to the pixelcurrently being processed. An adjacent pixel may be horizontally,vertically, or diagonally adjacent to the current pixel, and an adjacentpixel may be directly adjacent to the current pixel with no interveningpixels therebetween. In an alternative, intervening pixels may bepresent between the current and an adjacent pixel. Moreover, an adjacentpixel may be temporally adjacent to the current pixel in a series ofvideo frames such that the adjacent pixel occupies a corresponding pixellocation in a frame previous or subsequent to the frame of the currentpixel.

If there is another pixel in the frame to be processed at block 419, aluminance value can be processed for the next pixel as discussed abovewith respect to blocks 401-417. If there is another frame to beprocessed at block 421, luminance values can be processed for the nextframe as discussed above with respect to blocks 401-419.

Operations of blocks 415 and 417 may thus provide relatively lowstrength filtering (block 415) for luminance values and relatively highstrength filtering (block 417) for luminance values. In particular,relatively low strength filtering of luminance values may be provided atblock 415 by passing the luminance values without change. Relativelyhigh strength filtering may be provided at block 417 by averaging theluminance value for the current pixel with luminance values for one ormore adjacent pixels, and the strength thereof may be determined byapplying weightings to the current and adjacent luminance values beingaveraged. Moreover, a strength of filtering applied at block 417 may bevaried responsive to other factors such as a level of compressionapplied by an encoder, and/or to match filtering characteristics of atransmitting or receiving device. For example, relative weightingsapplied to the luminance values of the current and adjacent pixels beingaveraged may be changed as a function of a level of compression appliedby an encoder and/or to match filtering characteristics of atransmitting or receiving device.

In addition, operations of FIG. 4 may be performed for luminance valuesof selected pixels or for all pixels in a frame. For example, pixels atan edge of a frame may be processed differently to compensate for thepossibility that the definition of an adjacent pixel may not apply whenprocessing an edge pixel. More particularly, the definition of anadjacent pixel may be different when the current pixel being processedis at an edge of a frame. In an alternative, luminance values of edgepixels may not be subjected to filtering. In another alternative,extrapolation may be used to provide adjacent pixel data when thecurrent pixel being processed is at an edge of a frame.

As discussed above, filtering of image and/or video data may be appliedat a transmitting device before encoding and transmitting, and filteringmay also be applied at a receiving device after decoding to therebyreduce artifacts and/or distortions that may result from encoding and/ordecoding. By providing both pre-filtering before encoding andtransmitting and post-filtering after decoding, further reductions inhigh frequency artifacts and/or distortions may be achieved.

According to additional embodiments of the present invention, a frame ofdigital image and/or video data may include a plurality of rows andcolumns of pixels with data for each pixel including a luminance valueand a chrominance value. The digital image and/or video data may bepre-filtered and encoded at a transmitting device before transmission,and the pre-filtering may be performed according to a pre-filteringalgorithm. As shown in FIG. 5, the pre-filtered and encoded data fromthe transmitting device may be received at a receiving device at block501, the pre-filtered and encoded data may be decoded at block 503, andthe decoded data may be post-filtered according to a post filteringalgorithm at block 505 wherein the pre-filtering and post-filteringalgorithms are matched. For example, each of the pre-filtering andpost-filtering algorithms may be implemented as discussed above withrespect to FIGS. 3 and 4.

According to particular embodiments of the present invention, parametersof the pre-filtering algorithm may be transmitted from the transmittingdevice, and received at the receiving device. Moreover, operation of thepost-filtering algorithm may be adapted according to the parameters ofthe pre-filtering algorithm received from the transmitting device. Byway of example, pre-filtering and post-filtering algorithms may both beimplemented as discussed above with respect to FIGS. 3 and/or 4. Othervideo filters are discussed, for example, in U.S. Pat. No. 5,959,693 toSiu-Wai Wu et al. and in U.S. Pat. No. 6,456,328 to Okada. Thedisclosures of U.S. Pat. Nos. 5,959,693 and 6,456,328 are herebyincorporated herein in their entirety by reference.

Parameters transmitted from the transmitting device to the receivingdevice, for example, may include weightings to apply to current andadjacent luminance values when low-pass filtering at block 417, adefinition of the adjacent pixel for the calculation of block 407, anumerical value of the threshold K of block 409, a numerical value ofthe threshold M of block 411, and/or a definition of a significantchange in luminance for block 413. The post-filter algorithm may beadapted responsive to one or more of these parameters and/or otherparameters.

While the pre-filter of the transmitting device and the post-filter ofthe receiving device may be implemented as discussed above with respectto FIGS. 3 and/or 4, other filtering algorithms may be used.Accordingly, an identification of the pre-filtering algorithm of thetransmitting device may be transmitted to the receiving device. Thepost-filtering algorithm may thus be adapted to match the pre-filteringalgorithm responsive to receiving the identification of thepre-filtering algorithm.

According to yet additional embodiments of the present invention, aframe of digital image and/or video data may be pre-filtered and encodedbefore transmission with the data being pre-filtered according to apre-filtering algorithm, and parameters of pre-filtering may betransmitted from the transmitting device. As shown in FIG. 6,pre-filtered and encoded digital data from the transmitting device maybe received at block 601, parameters of the pre-filtering algorithm maybe received at block 603, and digital data may be decoded at block 605.In addition, the decoded digital image and/or video data may bepost-filtered according to a post-filtering algorithm wherein operationof the post-filtering algorithm is adapted at block 607 according to theparameters of the pre-filtering algorithm received from the transmittingdevice.

As discussed above, the pre-filtering and post-filtering algorithms maybe matched. Moreover, the pre-filtering and post-filtering algorithmsmay be implemented as discussed above with regard to FIGS. 3 and/or 4 orother algorithms may be used. Other video filters are discussed, forexample, in U.S. Pat. No. 5,959,693 to Siu-Wai Wu et al. and in U.S.Pat. No. 6,456,328 to Okada. The parameters of the pre-filteringalgorithm received from the transmitting device may include weightingsto apply to current and adjacent luminance values when low-passfiltering at block 417, a definition of the adjacent pixel for thecalculation of block 407, a numerical value of the threshold K of block409, a numerical value of the threshold M of block 411, and/or adefinition of a significant change in luminance for block 413. Thepost-filter algorithm may be adapted responsive to one or more of theseparameters and/or other parameters.

In addition or in an alternative, an identification of the pre-filteringalgorithm of the transmitting device may be transmitted to the receivingdevice. The post-filtering algorithm may thus be adapted to match thepre-filtering algorithm responsive to receiving the identification ofthe pre-filtering algorithm.

The pre-filter parameters may be received as user data in the imageand/or video bitstream or may be stored in an encapsulating file format.Moreover, pre-filter parameters may be included as a part of thebitstream according to image and/or video codec standards. Exactmatching of pre-filter and post-filter types and/or parameters may notbe required according to embodiments of the present invention. By usinginformation about the pre-filter parameters and selecting a slightlydifferent filter for the post-filter, sufficient and/or better resultsmay be provided.

According to still additional embodiments of the present invention, aframe of image and/or video data may include a plurality of rows andcolumns of pixels. As shown in FIG. 7, a luminance value of a currentpixel may be received at block 701, and the luminance value may befiltered at block 703. At block 705, the digital image and/or video dataincluding the filtered luminance value may be encoded, and a rate ofcompression of the digital data may be varied. Moreover, a strength offiltering of the luminance value can be varied responsive to the rate ofcompression applied during encoding.

For example, the filtering at block 703 may be implemented as discussedabove with respect to FIGS. 3 and/or 4. Other video filters arediscussed, for example, in U.S. Pat. No. 5,959,693 to Siu-Wai Wu et al.and in U.S. Pat. No. 6,456,328 to Okada. When filtering as discussedabove with respect to FIG. 4, the strength of filtering applied at block417 may be varied responsive to the rate of compression. Moreover, theencoded digital image and/or video data including the filtered luminancevalue may be transmitted over a wireless interface.

By varying the strength of filtering based on a level of compressionprovided during encoding, distortions from filtering may be reducedafter a relatively “lossy” compression. An amount of loss duringencoding may be determined by a quantization parameter (QP) value. Arelatively low QP value may provide relatively low compression andrelatively high quality, and a relatively high QP value may providerelatively high compression and relatively low quality. Lower QP valuesmay thus result in increases in compression artifacts in the resultingimage and/or video.

A rate control mechanism may change the QP value used during encoding toprovide a relatively constant bitrate. Accordingly, information aboutthe QP value currently being used during encoding may be used to vary astrength of filtering of luminance values. More particularly, a strengthof filtering of luminance values may be increased when the QP value forencoding increases, and a strength of filtering of luminance values maybe decreased when the QP value for encoding decreases. Performance ofimage and/or video transmission may thus be improved without increasingclearly visible distortions in the resulting image and/or video.Strength of filtering for luminance values may also be varied responsiveto motion vectors and/or macro-block skip information.

Additional embodiments of processing digital image and/or video data areillustrated in FIG. 8. As shown in FIG. 8, data for pixels of a frame ofdigital image and/or video data may be received at block 801, and thedata for the pixels of the frame may be filtered at block 803. A portionof the frame to which texture should be applied can be identified atblock 805, and the filtered data for the pixels can be encoded at block807. The encoded and filtered data for the pixels of the frame can betransmitted at block 809, and an identification of the portion of theframe to which texture should be applied can be transmitted at block811. In addition, a characterization of the texture to be applied can beprovided and transmitted, and the characterization may be one of aplurality of predetermined characterizations.

More particularly, identifying a portion of the frame of digital imageand/or video data to which texture should be applied may includecomparing the filtered data for the pixels of the frame with theunfiltered data for the pixels of the frame and identifying the portionof the frame of digital image and/or video data to which texture shouldbe applied based on comparing the filtered and unfiltered data.Moreover, data for the pixels of the frame may include luminance valuesand chrominance values, and identifying a portion of the frame ofdigital data to which texture should be applied may include identifyingpixels having similar chrominance values. In addition, the texture mayinclude a variation of luminance values included in the identifiedportion of the frame to which the texture should be applied. Operationsof filtering at block 803 may be performed, for example, as discussedabove with regard to FIGS. 3 and/or 4, and receiving data for pixels atblock 801 may include receiving pixels from a digital camera. Othervideo filters are discussed, for example, in U.S. Pat. No. 5,959,693 toSiu-Wai Wu et al. and in U.S. Pat. No. 6,456,328 to Okada.

Still additional embodiments of the present invention are illustrated inFIG. 9. As shown in FIG. 9, data for pixels of a frame of digital imageand/or video data may be received at block 901, the data for the pixelsmay be encoded at block 903, and a portion of the frame to which textureshould be applied can be identified at block 905. In addition, thetexture can be applied to the identified portion of the frame at block907 after decoding the data for the pixels of the frame. Moreover, thedecoded data can be filtered before applying the texture. For example,the decoded data can be filtered according to operations discussed abovewith regard to FIGS. 3 and/or 4. Other video filters are discussed, forexample, in U.S. Pat. No. 5,959,693 to Siu-Wai Wu et al. and in U.S.Pat. No. 6,456,328 to Okada.

More particularly, the characterization of the texture can be receivedfrom a transmitting device operating, for example, as discussed abovewith regard to FIG. 8, and the texture can be applied according to thereceived characterization. Moreover, the characterization may identifyone of a plurality of predetermined textures. In addition, identifying aportion of the frame to which texture should be applied may includeidentifying pixels having similar chrominance values.

As discussed above, pre-filtering and post-filtering according toembodiments of the present invention, may result in a loss of texture inthe processed image and/or video. For example, a surface of an objectmay have a relatively constant color (i.e. similar chrominance valuesacross pixels making up the surface), but the surface may have a textureresulting from variation in luminance values of pixels making up thesurface. Filtering according to embodiments of the present invention,however, may reduce these variations in luminance values across asurface of relatively constant color so that the surface in theprocessed image and/or video may appear relatively flat and/or smoothand/or may have an unnatural look. Exact details of the original texturemay be relatively unimportant for perception of an object including thesurface, and the surface of the processes image and/or video may be madeto appear more natural by replacing the original texture with anartificial texture (such as a “comfort” noise).

By comparing the original pixel data with the filtered pixel data,textures that have been removed can be classified and/or parameterized.The texture classifications and/or parameters can then be transmittedalong with the bitstream and used at the receiving device to reconstructtexture by artificially adding high frequency information such as“comfort” noise to the identified surfaces.

Operations discussed above with respect to FIGS. 3-9 can be implementedin mobile terminals operating according to various protocols. Forexample and not by way of limitation, mobile terminals according toembodiments of the present invention may provide communications throughone or more communications networks such as a WiFi network, a cellularradiotelephone network, a Personal Communication Services Network, asatellite communications network, an ultrawideband network, and/or aBluetooth network. Operations of FIGS. 3-9 can also be implemented inmobile terminals operating according to different communicationsprotocols according to alternative embodiments of the present invention.In addition, aspects of the present invention may be embodied asmethods, systems, and/or computer program products. Accordingly, thepresent invention may be embodied in hardware and/or in software(including firmware, resident software, micro-code, etc.).

The flowcharts of FIGS. 3-9 show architectures, functionalities, andoperations of exemplary implementations of software and data used, forexample, by a processor 215 to control a communications device accordingembodiments of the present invention. In this regard, each block mayrepresent a module, segment, or portion of code, which comprises one ormore executable instructions for implementing the specified logicalfunction(s). It should also be noted that in some alternativeimplementations, functions noted in the blocks may occur out of theorder noted therein. For example, two blocks shown in succession may beexecuted substantially concurrently or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved.

The present invention has been described above with reference to blockdiagrams and/or flowchart illustrations of methods, apparatus (systems)and/or computer program products according to embodiments of theinvention. It is understood that each block of the block diagrams and/orflowchart illustrations, and combinations of blocks in the blockdiagrams and/or flowchart illustrations, can be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, and/or other programmable data processing apparatus to producea machine, such that the instructions, which execute via the processorof the computer and/or other programmable data processing apparatus,create means for implementing the functions/acts specified in the blockdiagrams and/or flowchart block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instructions whichimplement the function/act specified in the block diagrams and/orflowchart block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer-implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe block diagrams and/or flowchart block or blocks.

It should also be noted that in some alternate implementations, thefunctions/acts noted in the blocks may occur out of the order noted inthe flowcharts. For example, two blocks shown in succession may in factbe executed substantially concurrently or the blocks may sometimes beexecuted in the reverse order, depending upon the functionality/actsinvolved.

In the drawings and specification, there have been disclosed typicalpreferred embodiments of the invention and, although specific terms areemployed, they are used in a generic and descriptive sense only and notfor purposes of limitation, the scope of the invention being set forthin the following claims.

1. A method for processing digital image and/or video data wherein aframe of the data comprises a plurality of rows and columns of pixelswith data for each pixel including a luminance value and a chrominancevalue, the method comprising: receiving chrominance values and luminancevalues for a current pixel and at least one adjacent pixel; comparingthe chrominance values of the current pixel and the at least oneadjacent pixel; and filtering the luminance value of the current pixelwherein a strength of filtering the luminance value is based on thecomparison of the chrominance values of the current and at least oneadjacent pixels.
 2. A method according to claim 1 wherein filtering theluminance value of the current pixel comprises averaging the luminancevalue of the current pixel with a luminance value of at least oneadjacent pixel.
 3. A method according to claim 2 wherein a strength ofthe filtering is determined by weightings applied to the luminancevalues when averaging the luminance values.
 4. A method according toclaim 1 wherein comparing the chrominance values of the current andadjacent pixels comprises calculating a difference between thechrominance values of the current and adjacent pixels.
 5. A methodaccording to claim 4 further comprising: reducing the strength offiltering when the difference between the chrominance values of thecurrent and adjacent pixels is above a predetermined threshold; andincreasing the strength of filtering when the difference between thechrominance values of the current and adjacent pixels is below thepredetermined threshold.
 6. A method according to claim 4 wherein thedata is provided in a YCrCb format where Y is a luminance value and Crand Cb are respective red and blue chrominance values for each pixel. 7.A method according to claim 6 wherein comparing the chrominance valuesof the current and adjacent pixels comprises summing an absolute valueof a difference of the Cr value for each pixel and an absolute value ofa difference of the Cb value for each pixel.
 8. A method according toclaim 7 wherein the absolute value of the difference of the Cr value foreach pixel comprises a squared difference of the Cr values and whereinthe absolute value of the difference of the Cb value for each pixelcomprises a squared difference of the Cb values.
 9. A method accordingto claim 5 wherein decreasing the strength of filtering comprisespassing the luminance data for the pixel without filtering.
 10. A methodaccording to claim 1 further comprising: before filtering the luminancevalue of the current pixel, comparing the luminance values of thecurrent pixel and at least one adjacent pixel, wherein a strength of thefiltering is based on the comparison of the chrominance values of thecurrent pixel and at least one adjacent pixel and on the comparison ofthe luminance values.
 11. A method according to claim 1 whereinreceiving the chrominance values and luminance values for a currentpixel and at least one adjacent pixel comprises receiving thechrominance and luminance values from a digital camera, the methodfurther comprising: encoding the data including the filtered luminancevalue; and transmitting the encoded data.
 12. A method according toclaim 11 wherein encoding comprises varying a rate of compression of thedata and wherein a strength of the filtering is based on the comparisonof the chrominance values of the first and second pixels and on the rateof compression applied during encoding.
 13. A method according to claim11 wherein receiving chrominance values and luminance values from thedigital camera comprises receiving chrominance values and luminancevalues for a frame of data and wherein filtering the luminance valuecomprises filtering luminance values for the frame of data, the methodfurther comprising: identifying portions of the filtered frame to whichtexture should be applied; and transmitting an identification ofportions of the frame to which texture should be applied.
 14. A methodaccording to claim 13 further comprising: transmitting an identificationof one of a plurality of textures which should be applied.
 15. A methodaccording to claim 1 further comprising: receiving encoded data; andbefore receiving the chrominance values and luminance values for thecurrent pixel and the at least one adjacent pixel, decoding the encodeddata to provide the chrominance values and luminance values for thecurrent pixel and for the at least one adjacent pixel.
 16. A methodaccording to claim 15 wherein filtering the luminance value comprisesfiltering luminance values for a frame of data, the method furthercomprising: identifying a portion of the frame to which texture shouldbe applied; and after filtering the luminance values from the frame ofdata, applying the texture to the identified portions of the frame. 17.A method according to claim 1 wherein the first and adjacent pixels areone of horizontally adjacent, vertically adjacent, diagonally adjacent,temporally adjacent, and/or non-immediately adjacent.
 18. A methodaccording to claim 1 wherein filtering the luminance value of thecurrent pixel comprises low-pass filtering the luminance value of thecurrent pixel.
 19. A method of processing digital image and/or videodata from a transmitting device wherein a frame of the data comprises aplurality of rows and columns of pixels with data for each pixelincluding a luminance value and a chrominance value, wherein the data ispre-filtered and encoded before transmission and wherein the data ispre-filtered according to a pre-filtering algorithm, the methodcomprising: receiving the pre-filtered and encoded data from thetransmitting device; decoding the pre-filtered and encoded data from thetransmitting device; and post-filtering the decoded data according to apost-filtering algorithm wherein the pre-filtering and post-filteringalgorithms are matched.
 20. A method according to claim 19 whereinparameters of the pre-filtering algorithm are transmitted from thetransmitting device, the method further comprising: receiving theparameters of the pre-filtering algorithm transmitted from thetransmitting device wherein operation of the post-filtering algorithm isadapted according to the parameters of the pre-filtering algorithmreceived form the transmitting device.
 21. A method according to claim20 wherein the parameters of the pre-filtering algorithm transmittedfrom the transmitting device comprise filtering strengths applied by thepre-filtering algorithm to luminance values of the data and wherein astrength of post-filtering is adapted in accordance with filterstrengths applied by the pre-filtering algorithm.
 22. A method accordingto claim 20 wherein the parameters of the pre-filtering algorithmtransmitted from the transmitting device comprise an identification ofthe pre-filtering algorithm and wherein the post-filtering algorithm isadapted to match the pre-filtering algorithm responsive to receiving theidentification of the pre-filtering algorithm.
 23. A method according toclaim 19 wherein each of the pre-filtering and post-filtering algorithmscompare chrominance values of a current pixel and at least one adjacentpixel and filter a luminance value of the current pixel such that astrength of the filtering of the luminance value of the current pixel isbased on the comparison of the chrominance values of the current pixeland the at least one adjacent pixel.
 24. A method of processing digitalimage and/or video data from a transmitting device wherein a frame ofthe data comprises a plurality of rows and columns of pixels with datafor each pixel including a luminance value and a chrominance value,wherein the data is pre-filtered and encoded before transmission,wherein the data is pre-filtered according to a pre-filtering algorithm,and wherein parameters of the pre-filtering algorithm are transmittedfrom the transmitting device, the method comprising: receiving thepre-filtered and encoded data from the transmitting device; receivingthe parameters of the pre-filtering algorithm transmitted from thetransmitting device; decoding the pre-filtered and encoded data from thetransmitting device; and post-filtering the decoded data according to apost-filtering algorithm wherein the operation of the post-filteringalgorithm is adapted according to the parameters of the pre-filteringalgorithm received from the transmitting device.
 25. A method accordingto claim 24 wherein the pre-filtering and post-filtering algorithms arematched.
 26. A method according to claim 24 wherein each of thepre-filtering and post-filtering algorithms compare chrominance valuesof a current pixel and at least one adjacent pixel and filter aluminance value of the current pixel such that a strength of thefiltering of the luminance value of the current pixel is based on thecomparison of the chrominance values of the current pixel and the atleast one adjacent pixel.
 27. A method according to claim 24 wherein theparameters of the pre-filtering algorithm transmitted from thetransmitting device comprise filtering strengths applied by thepre-filtering algorithm to luminance values of the data and wherein astrength of the post-filtering is adapted in accordance with filterstrengths applied by the pre-filtering algorithm.
 28. A method accordingto claim 24 wherein the parameters of the pre-filtering algorithmtransmitted from the transmitting device comprise an identification ofthe pre-filtering algorithm and wherein the post-filtering algorithm isadapted to match the pre-filtering algorithm responsive to receiving theidentification of the pre-filtering algorithm.
 29. A method forprocessing digital image and/or video data wherein a frame of the datacomprises a plurality of rows and columns of pixels, the methodcomprising: receiving a luminance value for a current pixel; filteringthe luminance value of the current pixel; and encoding the dataincluding the filtered luminance value wherein encoding data comprisesvarying a rate of compression of the data, and wherein a strength of thefiltering of the luminance value is varied responsive to the rate ofcompression applied during encoding.
 30. A method according to claim 29wherein receiving further comprises receiving a chrominance value forthe current pixel and receiving a luminance and chrominance value for atleast one adjacent pixel, the method further comprising: comparing thechrominance values of the current pixel and the at least one adjacentpixel, wherein the strength of filtering the luminance value is furtherbased on the comparison of the chrominance values of the current and atleast one adjacent pixel.
 31. A method according to claim 29 furthercomprising: transmitting the encoded data including the filteredluminance value over a wireless interface.
 32. A method according toclaim 29 wherein filtering the luminance value of the current pixelcomprises averaging the luminance value of the current pixel with aluminance value of at least one adjacent pixel.
 33. A method accordingto claim 32 wherein a strength of filtering is determined by weightingsapplied to the luminance values when averaging the luminance values. 34.A method according to claim 29 further comprising: increasing thestrength of filtering responsive to a relatively high rate ofcompression applied during encoding; and decreasing the strength offiltering responsive to a relatively low rate of compression appliedduring encoding.
 35. A method for processing digital image and/or videodata wherein a frame of the data comprises a plurality of rows andcolumns of pixels, the method comprising: receiving data for pixels of aframe; filtering the data for the pixels of the frame; identifying aportion of the frame of data to which texture should be applied;encoding the filtered data for the pixels of the frame; transmitting theencoded and filtered data for the pixels of the frame; and transmittingidentification of the portion of the frame of data to which textureshould be applied.
 36. A method according to claim 35 furthercomprising: providing a characterization of the texture to be applied tothe identified portion of the frame; and transmitting thecharacterization of the texture to be applied to the identified portionof the frame.
 37. A method according to claim 36 wherein providing acharacterization of the texture comprises identifying one of a pluralityof predetermined textures.
 38. A method according to claim 35 whereinidentifying a portion of the frame of data to which texture should beapplied comprises comparing the filtered data for the pixels of theframe with the unfiltered data for the pixels of the frame of the dataand identifying the portion of the frame of data to which texture shouldbe applied based on comparing the filtered data and unfiltered data forthe frame.
 39. A method according to claim 35 wherein the data for thepixels of the frame comprises luminance values and chrominance valuesand wherein identifying a portion of the frame of data to which textureshould be applied comprises identifying pixels having similarchrominance values.
 40. A method according to claim 35 wherein the datafor the pixels of the frame comprises luminance values and chrominancevalues, and wherein the texture comprises a variation of luminancevalues included in identified portions of the frame to which the textureshould be applied.
 41. A method according to claim 35 wherein the datafor the pixels of the frame comprises luminance values and chrominancevalues, and wherein filtering the data for the pixels of the framecomprises: receiving chrominance values and luminance values for acurrent pixel and at least one adjacent pixel; comparing the chrominancevalues of the current pixel and the at least one adjacent pixel; andfiltering the luminance value of the current pixel wherein a strength ofthe filtering the luminance value is based on the comparison of thechrominance values of the current and at least one adjacent pixels. 42.A method according to claim 35 wherein receiving data for pixels of aframe of the data comprises receiving the data from a digital camera.43. A method for processing digital image and/or video data wherein aframe of the data comprises a plurality of rows and columns of pixels,the method comprising: receiving data for pixels of a frame of the data;decoding the data for pixels of the frame; identifying a portion of theframe of data to which texture should be applied; and after decoding thedata for the pixels of the frame, applying the texture to the identifiedportion of the frame of data.
 44. A method according to claim 43 furthercomprising: receiving a characterization of the texture to be applied tothe identified portion of the frame wherein applying the texture to theidentified portion of the frame comprises applying the texture accordingto the received characterization.
 45. A method according to claim 44wherein the characterization identifies one of a plurality ofpredetermined textures.
 46. A method according to claim 43 wherein thedata for the pixels of the frame comprises luminance values andchrominance values and wherein identifying a portion of the frame ofdata to which texture should be applied comprises identifying pixelshaving similar chrominance values.
 47. A method according to claim 43wherein the data for the pixels of the frame comprises luminance valuesand chrominance values, and wherein the texture comprises a variation ofluminance values of pixels included in identified portions of the frameto which the texture is applied.
 48. A method according to claim 43further comprising: before applying the texture, filtering the decodeddata for the pixels of the frame.
 49. A method according to claim 43wherein receiving data for pixels of a frame of the data comprisesreceiving the data over a wireless interface.